1. Field of the Invention
The present invention relates to the field of portable computer systems, such as personal digital assistants or palmtop computer systems. Specifically, the present invention relates to operating systems used by portable computer systems.
2. Related Art
A palmtop computer system, or personal digital assistant (PDA), is a computer that is small enough to be held in the hand of a user and is thus “palm-sized.” By virtue of their size, palmtop computer systems are lightweight and so are exceptionally portable and convenient. As the sophistication of palmtops increase, so too does the number and types of applications that can be run on them.
Palmtops are typically equipped with a serial port and an infrared port to facilitate the transfer of information to and from external devices. Using the serial port, applications, data and other information can be exchanged between a conventional computer system and a palmtop computer using an application or process commonly referred to as “synching” or “hot synching.” Typically, the palmtop is placed into a device, such as a cradle, that is communicatively coupled to the conventional computer system via a connector cable. When the palmtop is placed into the cradle, the serial port on the palmtop couples with a mechanical and electrical interface on the cradle.
The infrared communication port is used for exchanging data, applications and other information with similarly equipped devices over a wireless link. The infrared port on the palmtop is aligned with the infrared report on the other device, and information is exchanged using a process commonly referred to as “beaming.”
Currently, because of size and cost considerations, the serial port and the infrared port share the same hardware within the palmtop. Specifically, a single universal asynchronous receiver-transmitter (UART) module provides the receiving and transmitting circuits required for serial communication for both the serial port and the infrared port. As a result, the infrared port and the serial port can only be used one at a time; they both cannot be used at the same time. As such, an infrared application (e.g., beaming) and an application needing the serial port (e.g., synching) cannot be used at the same time.
The preference is to have the infrared application available any time it may be needed, so that information can be beamed from one device to another quickly and seamlessly without having to make and wait for a change in operating modes. However, this is problematic because the infrared application will thereby monopolize the UART and, consequently, the serial port cannot be used. When an application attempts to open the serial port while the infrared application is open, an error message stating that the serial port is already in use will be generated.
In one prior art solution to this problem, the infrared application remains always open but in a listen-only mode unless information is being actively beamed. If beaming is not active, the infrared application relinquishes control of the UART when another application indicates that it wants to use the serial port. For example, if a synching application requests that the serial port be opened, the infrared application would yield, allowing the synching application to open and use the serial port. Thus, in the prior art, a scheme is implemented whereby the infrared application yields to an application that needs the serial port.
This solution is satisfactory in some respects, but remains problematic when there are multiple applications that need to use the serial port. For example, in addition to the synching application, palmtops now may incorporate applications supporting Bluetooth, telephony, and network (e.g., Internet) connectivity, each of which uses the serial port. When one of these applications is using the serial port, and another of these applications also needs to use the serial port, a conflict occurs and the second application receives an error message stating that the port is already in use. With the number of applications increasing, conflicts are likely to occur more frequently. However, the prior art does not provide a solution for resolving conflicts between applications competing for the serial port.
Applications supporting network connectivity introduce an additional factor that exacerbates the problem just described. After a network connection is made over the serial port, it is generally desirable to keep the network connection open in the background, so that the network can still be heard over the serial port. For example, a network library may keep the serial port open in the background. Thus, applications supporting network connectivity may monopolize the serial port for extended periods of time, in contrast to applications such as synching that typically use the serial port for only a limited amount of time. This is problematic because another application cannot use the serial port while a network library, or other such application, is open and running in the background. As described above, when another application makes a request for the serial port, it will receive an error message stating that the port is already in use.
In the prior art, when a conflict between applications occur, the user shuts down one application in order to execute the other. Such an approach to resolving conflicts is inconvenient to the user.
Accordingly, what is needed is a method and/or system that can resolve conflicts between applications seeking to use the serial port at the same time, but is convenient to the user. What is also needed is a method and/or system that can satisfy the above needs within the space constraints of a portable computer system. The present invention provides a novel solution to these needs.